package com.rockcent.mall.lib.dto;

import com.rockcent.common.domain.DtoEntity;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Created by zhangjh on 2016/11/4.
 */
public class ChannelStatisticsChartDto extends DtoEntity {

    /**
     * 总数量
     */
    private Long totalCount;

    /**
     *  visit 访问情况  sale 销售情况  verification 核销情况
     */
    private String chartType;

    /**
     * 产品 服务 ALL
     */
    private String type;
    /**
     * 类型ID
     */
    private Long typeId;
    private List<Long> typeIds;

    /**
     * 类型名称
     */
    private String typeName;

    /**
     * 统计类型（昨天 YESTERDAY,近一周 WEEK,最近一个月 MONTH 最近三个月 QUATER）
     */
    private String statisticsType;

    /**
     * 渠道名称
     */
    private String channelName;

    /**
     * 日期/月份
     */
    private Date dateCount;

    /**
     * 日期/月份
     */
    private String dateStr;

    /**
     * 统计-开始时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String startDate;
    /**
     * 统计-结束时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private String endDate;

    /**
     * 访问次数
     */
    private Long viewCount=0l;

    /**
     * 销售数
     */
    private Long saleCount=0l;


    /**
     *  下单人数
     */
    private Long saleCustomerCount=0l;

    /**
     * 核销人数
     */
    private Long verificationCustomerCount=0l;

    /**
     * 核销数量
     */
    private Long verificationCount=0l;

    /**
     * 核销转化率
     */
    private Double verificationRate=0d;

    /**
     *  下单转化率
     */
    private Double saleConversionRate=0d;


    /**
     * 访问人数
     */
    private Long viewCustomer=0l;

    /**
     * 访问次数结果集
     */
    private List viewCountResult;

    /**
     * 访问人数结果集
     */
    private List customerCountResult;

    /**
     * 销售数量结果集
     */
    private List saleCountResult;

    /**
     * 下单人数结果集
     */
    private List orderCustomerCountResult;

    /**
     * 下单转化率结果集
     */
    private List orderConversionRateResult;


    /**
     * 核销数量结果集
     */
    private List verificationCountResult;

    /**
     * 核销人数结果集
     */
    private List verificationCustomerCountResult;

    /**
     * 核销转化率结果集
     */
    private List verificationConversionRateResult;

    /**
     * 分组
     */
    private String groupByType;

    /**
     * 品类数
     */
    private Long categoryCount;

    /**
     * 品类ID
     */
    private Long cateId;
    /**
     * 平台ID
     */
    private Long mallId;
    /**
     * 商家ID
     */
    private Long merchantId;
    /**
     * 商家名称
     */
    private String merchantName;


    public List getSaleCountResult() {
        return saleCountResult;
    }



    public void setSaleCountResult(List saleCountResult) {
        this.saleCountResult = saleCountResult;
    }

    public List getOrderCustomerCountResult() {
        return orderCustomerCountResult;
    }

    public void setOrderCustomerCountResult(List orderCustomerCountResult) {
        this.orderCustomerCountResult = orderCustomerCountResult;
    }



    public Long getVerificationCustomerCount() {
        return verificationCustomerCount;
    }

    public String getStartDate() {
        return startDate;
    }

    public void setStartDate(String startDate) {
        this.startDate = startDate;
    }

    public String getEndDate() {
        return endDate;
    }

    public void setEndDate(String endDate) {
        this.endDate = endDate;
    }

    public void setVerificationCustomerCount(Long verificationCustomerCount) {
        this.verificationCustomerCount = verificationCustomerCount;
    }

    public Long getVerificationCount() {
        return verificationCount;
    }

    public void setVerificationCount(Long verificationCount) {
        this.verificationCount = verificationCount;
    }

    public Double getVerificationRate() {
        return verificationRate;
    }

    public void setVerificationRate(Double verificationRate) {
        this.verificationRate = verificationRate;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public List getOrderConversionRateResult() {
        return orderConversionRateResult;


    }

    public void setOrderConversionRateResult(List orderConversionRateResult) {
        this.orderConversionRateResult = orderConversionRateResult;
    }


    public Long getSaleCount() {
        return saleCount;
    }

    public String getStatisticsType() {
        return statisticsType;
    }

    public Long getTypeId() {
        return typeId;
    }

    public void setTypeId(Long typeId) {
        this.typeId = typeId;
    }

    public void setStatisticsType(String statisticsType) {
        this.statisticsType = statisticsType;
    }

    public void setSaleCount(Long saleCount) {
        this.saleCount = saleCount;
    }

    public Long getSaleCustomerCount() {
        return saleCustomerCount;
    }

    public void setSaleCustomerCount(Long saleCustomerCount) {
        this.saleCustomerCount = saleCustomerCount;
    }

    public Double getSaleConversionRate() {
        return saleConversionRate;
    }

    public void setSaleConversionRate(Double saleConversionRate) {
        this.saleConversionRate = saleConversionRate;
    }

    public List getVerificationCountResult() {
        return verificationCountResult;
    }

    public void setVerificationCountResult(List verificationCountResult) {
        this.verificationCountResult = verificationCountResult;
    }

    public Long getViewCount() {
        return viewCount;
    }

    public void setViewCount(Long viewCount) {
        this.viewCount = viewCount;
    }

    public List getVerificationCustomerCountResult() {
        return verificationCustomerCountResult;
    }

    public void setVerificationCustomerCountResult(List verificationCustomerCountResult) {
        this.verificationCustomerCountResult = verificationCustomerCountResult;
    }

    public List getVerificationConversionRateResult() {
        return verificationConversionRateResult;
    }

    public void setVerificationConversionRateResult(List verificationConversionRateResult) {
        this.verificationConversionRateResult = verificationConversionRateResult;
    }

    public String getChartType() {

        return chartType;
    }

    public void setChartType(String chartType) {
        this.chartType = chartType;
    }

    public List getViewCountResult() {
        return viewCountResult;
    }

    public void setViewCountResult(List viewCountResult) {
        this.viewCountResult = viewCountResult;
    }

    public List getCustomerCountResult() {
        return customerCountResult;
    }

    public void setCustomerCountResult(List customerCountResult) {
        this.customerCountResult = customerCountResult;
    }

    public Date getDateCount() {
        return dateCount;
    }

    public void setDateCount(Date dateCount) {
        this.dateCount = dateCount;
    }

    public String getChannelName() {
        return channelName;
    }

    public void setChannelName(String channelName) {
        this.channelName = channelName;
    }





    public Long getViewCustomer() {
        return viewCustomer;
    }

    public void setViewCustomer(Long viewCustomer) {
        this.viewCustomer = viewCustomer;
    }

    public String getDateStr() {
        return dateStr;
    }

    public void setDateStr(String dateStr) {
        this.dateStr = dateStr;
    }

    public Long getTotalCount() {
        return totalCount;
    }

    public void setTotalCount(Long totalCount) {
        this.totalCount = totalCount;
    }

    public String getGroupByType() {
        return groupByType;
    }

    public void setGroupByType(String groupByType) {
        this.groupByType = groupByType;
    }

    public String getTypeName() {
        return typeName;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public Long getCategoryCount() {
        return categoryCount;
    }

    public void setCategoryCount(Long categoryCount) {
        this.categoryCount = categoryCount;
    }

    public Long getCateId() {
        return cateId;
    }

    public void setCateId(Long cateId) {
        this.cateId = cateId;
    }

    public List<Long> getTypeIds() {
        return typeIds;
    }

    public void setTypeIds(List<Long> typeIds) {
        this.typeIds = typeIds;
    }

    public Long getMallId() {
        return mallId;
    }

    public void setMallId(Long mallId) {
        this.mallId = mallId;
    }

    public Long getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(Long merchantId) {
        this.merchantId = merchantId;
    }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    @Override
    public String toString() {
        return "ChannelStatisticsChartDto{" +
                "totalCount=" + totalCount +
                ", chartType='" + chartType + '\'' +
                ", type='" + type + '\'' +
                ", typeId=" + typeId +
                ", typeIds=" + typeIds +
                ", typeName='" + typeName + '\'' +
                ", statisticsType='" + statisticsType + '\'' +
                ", channelName='" + channelName + '\'' +
                ", dateCount=" + dateCount +
                ", dateStr='" + dateStr + '\'' +
                ", startDate='" + startDate + '\'' +
                ", endDate='" + endDate + '\'' +
                ", viewCount=" + viewCount +
                ", saleCount=" + saleCount +
                ", saleCustomerCount=" + saleCustomerCount +
                ", verificationCustomerCount=" + verificationCustomerCount +
                ", verificationCount=" + verificationCount +
                ", verificationRate=" + verificationRate +
                ", saleConversionRate=" + saleConversionRate +
                ", viewCustomer=" + viewCustomer +
                ", viewCountResult=" + viewCountResult +
                ", customerCountResult=" + customerCountResult +
                ", saleCountResult=" + saleCountResult +
                ", orderCustomerCountResult=" + orderCustomerCountResult +
                ", orderConversionRateResult=" + orderConversionRateResult +
                ", verificationCountResult=" + verificationCountResult +
                ", verificationCustomerCountResult=" + verificationCustomerCountResult +
                ", verificationConversionRateResult=" + verificationConversionRateResult +
                ", groupByType='" + groupByType + '\'' +
                ", categoryCount=" + categoryCount +
                ", cateId=" + cateId +
                ", mallId=" + mallId +
                ", merchantId=" + merchantId +
                ", merchantName='" + merchantName + '\'' +
                '}';
    }
}
